package xdu.lz.stage6_threadpool.chapter3_threadPoolExecutorAPI;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;

/**
 * Created at 2019/10/24 0024 下午 3:47
 * 注意：
 * 只有execute，submit，invokeAny或invokeAll等
 * API才能出发线程的创建，如果直接加任务到queue，是不会触发线程创建的
 */
public class TaskAddTest {

    public static void main(String[] args) {

    }


    private static void testAddTask(){
        ThreadPoolExecutor service = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
        //没有触发线程创建的机制，不会被执行，因为没有线程。
        service.getQueue().add(()->{
            System.out.println(1);
        });
    }

    private static void testAddTask2(){
        ThreadPoolExecutor service = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
        service.getQueue().add(()->{
            System.out.println(1);
        });
        //触发线程创建，然后去执行，去queue中拿
        service.execute(()->{
            System.out.println(2);
        });

        service.getQueue().add(()->{
            System.out.println(3);
        });
    }
}
